The present disclosure generally relates to software products. More specifically, the present disclosure relates to techniques for determining a scalability breakpoint for an online implementation of a software product.
For a given implementation of an online software product with an associated hardware capacity, determining the scalability breakpoint, i.e., the optimal number of concurrent users of the software product, is an important product-release criterion. Using the scalability breakpoint, development teams can provide an improved customer experience and service with vertical and/or horizontal scalability. Alternatively, if the scalability breakpoint is not determined, development teams are usually forced to respond tactically to performance outage incidents in order to restore service, but are often unable to track down the root cause of the incidents because of time and resource constraints. This can result in sub-optimal computer-system utilization, and an unsatisfactory customer experience.
Capacity management simulation tools can be used to determine the scalability breakpoint for an online implementation of a software product. However, existing capacity management simulation tools tend to use very detailed queuing models to simulate the capacity of a computer system. These models are typically calibrated for a specific computer system or environment. Moreover, this calibration often involves collecting a large number of system statistics (such as an inter-arrival time distribution and a service-time distribution) before the scalability breakpoint can be determined, which can involve weeks of data preparation and iterative measurements. Such an extensive calibration procedure is often prohibitively expensive and time-consuming, which can prevent efficient development and may be an obstacle to aggressive product release schedules.